package string;


import java.util.Arrays;

/*
字符串支持正则表达式方法之一
boolean matches(String regex)
使用给定的正则表达式匹配当前字符串内容是否符合格式要求，符合则返回TRUE
 */
public class MatchesDemo {
    public static void main(String[] args) {
        String email = "fancq_@tedu.cn";

        //邮箱正则表达式
        //   //转义
        // [a-zA-Z-9_]+@[a-zA-Z_9]+(\.[a-zA-Z]+)+
        String regex ="[a-zA-Z0-9_]+@[a-zA-Z0_9]+(\\.[a-zA-Z]+)+";
        boolean match = email.matches(regex);
        if(match){
            System.out.println("是邮箱");
        }else{
            System.out.println("不是邮箱");
        }


        /**
         * 字符串支持正则表达式方法二
         * String[] spilt(String regex)
         * 将当前字符串按照满足正则表达式的部分进行拆分，返回的数组中包含被拆分出来的所有部分
         */

        String str = "abc123def456ghi";
        //按照数字部分进行拆分，得到所有字母部分
        String[] date = str.split("[0-9]+");   //+号表示其中任意数字
        System.out.println(date.length);   //数组的长度
        System.out.println(Arrays.toString(date));  //将数组转换为字符  能看懂的

        //当连续遇到了两个可拆分项时，他们之间会拆分出一个空字符串
        //如果在字符串的末尾遇到可拆分项   拆分出的空字符串系统自动忽略不保留
        str = ",a,,b,c,d,e,f,,,";
        date = str.split(",");    //split删除拆分工作
        System.out.println(date.length);
        System.out.println(Arrays.toString(date));

/**
 * "."在正则表达式中表示任意字符，因此如果直接按照"."拆分，则得不到任何内容
 */
        str = ".a.b.c.d.e.f.";
        date = str.split("\\.");    //split删除拆分工作
        System.out.println(date.length);
        System.out.println(Arrays.toString(date));
    }
}
